Stored Procedure (Stored Procedure) ist vorbereiteter SQL-Code, der gespeichert werden kann, sodass der Code immer wieder verwendet werden kann.
Wenn Sie also eine SQL-Abfrage haben, die Sie immer wieder schreiben, speichern Sie sie als gespeicherte Prozedur und rufen Sie sie dann einfach zur Ausführung auf.
Sie können einer gespeicherten Prozedur auch Parameter übergeben, damit die gespeicherte Prozedur auf die übergebenen Parameterwerte reagieren kann.
CREATE PROCEDURE procedure_name
AS
sql_statement
GO
EXEC procedure_name
Das Folgende ist ein Beispiel aus der Tabelle „Customers“ („Kunden“) der Datenbank „Northwind“:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 5021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 5023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
Die folgende SQL-Abfrage erstellt eine gespeicherte Prozedur mit dem Namen „SelectAllCustomers“, die alle Datensätze aus der Tabelle „Customers“ auswählt:
CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO
Führen wir die oben genannte gespeicherte Prozedur wie folgt aus:
EXEC SelectAllCustomers
Die folgende SQL-Abfrage erstellt eine gespeicherte Prozedur, die Kunden aus einer bestimmten Stadt aus der Tabelle „Kunden“ auswählt:
CREATE PROCEDURE SelectAllCustomers @City nvarchar(30)
AS
SELECT * FROM Customers WHERE City = @City
GO
Führen wir die oben genannte gespeicherte Prozedur wie folgt aus:
EXEC SelectAllCustomers @City = 'London'
Es ist sehr einfach, mehrere Parameter zu konfigurieren, indem Sie jeden Parameter und Datentyp wie unten gezeigt durch ein Komma getrennt auflisten.
Die folgende SQL-Anweisung erstellt eine gespeicherte Prozedur, die Kunden aus einer bestimmten Stadt mit einer bestimmten Postleitzahl aus der Tabelle „Kunden“ auswählt:
CREATE PROCEDURE SelectAllCustomers @City nvarchar(30), @PostalCode nvarchar(10)
AS
SELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCode
GO
Führen wir die oben genannte gespeicherte Prozedur wie folgt aus:
EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP'